老王:茫茫瓜海裡,請問你可有兩顆一模一樣的瓜?(重量、瓜紋一樣、連籽數、籽的大小都一樣),只差優良農產品的身分證編號不同,因為是限量種植。
現實世界哩,電子製造業,BOM表算是很複雜,完全展開有超過300顆料號很正常。
試問:在組裝料號不同的情況下,如何找出下階料都是完全一樣的BOM表出來?
這個問題很難嗎?!
每個BOM表,假設300顆下階料(半成品、成品),假設有500個成品。
這個程式很簡單啊!大家都會說。
啊就,外迴圈是成品料號500個,再把每個BOM表炸開,內迴圈再來逐兩個兩個料比較,一旦完全比對完都沒有差異,那這2個就是完全一模一樣了。
請注意,料本身的序號可能不一樣,但不影響比對。
你知道這個比較工程有多大嗎?
姑且不論展BOM的次數,光是外迴圈*500*499,內迴圈是300*300,所以總共是幾乎500*499*300*300個比對次數=???個百萬次!
Oh my god! 我的CASIO 10位數計算機投降了!
XP小算盤說=22,455,000,000=224.55億!(XP果然是好用)
我應該是算錯啦~這只是小小公司而已,哪有這麼複....雜!
或許沒那麼多,但,請問:你寫的程式要跑多久才可以全部比對完,並找出來相同的?
這個問題,應該會困擾不少MIS。
不管是同中求異、還是異中求同,相信很多人都可以找出解法。
但我只想問:你寫的程式要跑多久?
以前我看過一個鼎新系統(Informix 資料庫),某個定期失效料號的客製,因為要考慮很多條件(庫存、異動、工單、PR、PO、OE、ECR、BOM表等等....,據說要備份一套ERP系統後,單機獨自跑這支客製,還要花個3天3夜。
這個問題,我沒考慮太複雜的比對過程,最終我只給了系統負責人Ricky,一個很簡單的算法。
我跟他說: 你想看看學校月考比較排名怎麼做的?這支比對程式大概就是這麼寫!
Ricky: @#$!$^$%^,師仔: 我要我的Rocky!
這不是我的Rocky!這不是我的Rocky!這不是我的Rocky!
欲知老王賣的瓜,到底有沒有一模一樣的,且待下回分解。
[開發技術組] 哇咧~夠了(Oracle SQL)
一、Oracle SQL 從 Select * From Dual; 開始囉~(Oracle SQL 2013/09/16)
http://ithelp.ithome.com.tw/question/10126717
二、單一SQL好,還是PL/SQL好?最好是再多問一句:哪一種寫法比較Smart!(Oracle SQL 2013/09/17)
http://ithelp.ithome.com.tw/question/10127060
三、(續)單一SQL好,還是PL/SQL好?(Oracle SQL 2013/09/18)
http://ithelp.ithome.com.tw/question/10127328
四、Oracle 日期之我轉、我轉、我轉..轉..轉......(Oracle SQL 2013/09/19)
http://ithelp.ithome.com.tw/question/10127536
五、數字轉成等比例的符號(Oracle SQL 2013/09/20)
http://ithelp.ithome.com.tw/question/10128037
六、戲法人人會變(Oracle SQL 2013/09/21)
http://ithelp.ithome.com.tw/question/10128274
七、轉檔的小技巧(Oracle SQL 2013/09/22)
http://ithelp.ithome.com.tw/question/10128601
八、上旬!中旬、下旬,是否有規則可循?真是懷念台灣的紅蟳...趕緊去尋...(Oracle SQL 2013/09/23)
http://ithelp.ithome.com.tw/question/10128897
九、「不憤不啟,不悱不發。舉一隅不以三隅反,則不復也」(Oracle SQL 2013/09/24)
http://ithelp.ithome.com.tw/question/10129413
[IT人生組] 鐵人不簡單, 挨踢人生刊, 卅天不間斷, 苦辣加甜酸。
一、話說這世界上有很多的30....(2013/9/23)
http://ithelp.ithome.com.tw/question/10128901
二、小精靈...是黃色的(2013/9/24)
http://ithelp.ithome.com.tw/question/10129121
三、奇妙的機器(2013/9/25)
http://ithelp.ithome.com.tw/question/10129635